# Reinforcement Learning နှင့် LLMs တွင် ၎င်း၏အခန်းကဏ္ဍ မိတ်ဆက်[[introduction-to-reinforcement-learning-and-its-role-in-llms]]

ပထမဆုံး စာမျက်နှာမှ ကြိုဆိုပါတယ်။

ကျွန်တော်တို့ဟာ Reinforcement Learning (RL) ရဲ့ စိတ်လှုပ်ရှားဖွယ်ရာ ကမ္ဘာဆီကို ခရီးစတင်ပြီး၊ သင်နေ့စဉ်အသုံးပြုနေနိုင်တဲ့ Language Models တွေကို လေ့ကျင့်ရာမှာ ဒါက ဘယ်လိုတော်လှန်ပြောင်းလဲနေလဲဆိုတာ ရှာဖွေသွားမှာပါ။

> [!TIP]
> ဒီအခန်းမှာ၊ ကျွန်တော်တို့ဟာ language models တွေအတွက် reinforcement learning ကို အဓိကထား လေ့လာသွားမှာပါ။ သို့သော်လည်း၊ reinforcement learning ဟာ language models တွေအပြင် အခြားသော applications များစွာရှိတဲ့ ကျယ်ပြန့်တဲ့ နယ်ပယ်တစ်ခုပါ။ သင် reinforcement learning အကြောင်း ပိုမိုလေ့လာချင်တယ်ဆိုရင် [Deep Reinforcement Learning course](https://huggingface.co/courses/deep-rl-course/en/unit1/introduction) ကို ကြည့်ရှုသင့်ပါတယ်။

ဒီစာမျက်နှာက RL နဲ့ ပတ်သက်ပြီး သင်ဘယ်တုန်းကမှ မကြုံဖူးရင်တောင်မှ၊ ဖော်ရွေပြီး ရှင်းလင်းပြတ်သားတဲ့ နိဒါန်းတစ်ခုကို ပေးပါလိမ့်မယ်။ အဓိကအယူအဆတွေကို ခွဲခြမ်းစိတ်ဖြာပြီး Large Language Models (LLMs) နယ်ပယ်မှာ RL ဟာ ဘာကြောင့် ဒီလောက်အရေးပါလာတာလဲဆိုတာကို ကြည့်ရပါမယ်။

## Reinforcement Learning (RL) ဆိုတာ ဘာလဲ။

ခွေးတစ်ကောင်ကို လေ့ကျင့်ပေးနေတယ်လို့ မြင်ယောင်ကြည့်ပါ။ သင်က ခွေးကို ထိုင်ခိုင်းချင်တယ်။ သင်က "ထိုင်!" လို့ ပြောပြီး ခွေးက ထိုင်ရင် ဆုအဖြစ် မုန့်ပေးပြီး ချီးကျူးပါလိမ့်မယ်။ မထိုင်ရင်တော့ ညင်သာစွာ လမ်းညွှန်ပေးတာ ဒါမှမဟုတ် ထပ်ကြိုးစားတာမျိုး လုပ်ပါလိမ့်မယ်။ အချိန်ကြာလာတာနဲ့အမျှ ခွေးက ထိုင်ခြင်းကို ကောင်းမွန်တဲ့ ဆုလာဘ် (မုန့်နဲ့ ချီးကျူးခြင်း) နဲ့ ဆက်စပ်ပြီး သင် "ထိုင်!" လို့ ထပ်ပြောတဲ့အခါ ထိုင်ဖို့ ပိုပြီးဖြစ်နိုင်ချေရှိလာပါလိမ့်မယ်။ Reinforcement learning မှာ၊ ဒီ feedback ကို **reward** လို့ ကျွန်တော်တို့ ခေါ်ပါတယ်။

အနှစ်ချုပ်ပြောရရင် ဒါက Reinforcement Learning ရဲ့ အခြေခံအယူအဆပါပဲ! ခွေးအစား ကျွန်တော်တို့မှာ **language model** (reinforcement learning မှာ ကျွန်တော်တို့က **agent** လို့ ခေါ်ပါတယ်) ရှိပြီး၊ သင့်အစား feedback ပေးတဲ့ **environment** ရှိပါတယ်။

![RL terms Process](https://huggingface.co/reasoning-course/images/resolve/main/grpo/3.jpg)

RL ရဲ့ အဓိကအစိတ်အပိုင်းတွေကို ခွဲခြမ်းစိတ်ဖြာကြည့်ရအောင်။

### Agent

ဒါက ကျွန်တော်တို့ရဲ့ သင်ယူသူ (learner) ပါ။ ခွေးဥပမာမှာ၊ ခွေးက agent ပါ။ LLMs အခြေအနေမှာ၊ LLM ကိုယ်တိုင်က ကျွန်တော်တို့ လေ့ကျင့်ချင်တဲ့ agent ဖြစ်လာပါတယ်။ Agent က ဆုံးဖြတ်ချက်တွေ ချမှတ်ပြီး environment နဲ့ ၎င်းရဲ့ rewards တွေကနေ သင်ယူသူပါ။

### Environment

ဒါက agent နေထိုင်ပြီး အပြန်အလှန်ဆက်ဆံတဲ့ ကမ္ဘာပါ။ ခွေးအတွက်ကတော့ သင့်အိမ်နဲ့ သင်ပါ။ LLM အတွက်ကတော့ environment က နည်းနည်း ပိုပြီး abstract ပါ – အဲဒါက သူအပြန်အလှန်ဆက်ဆံတဲ့ users တွေ ဖြစ်နိုင်သလို၊ ကျွန်တော်တို့ သူ့အတွက် သတ်မှတ်ထားတဲ့ simulated scenario တစ်ခုလည်း ဖြစ်နိုင်ပါတယ်။ Environment က agent ကို feedback ပေးပါတယ်။

### Action

ဒါတွေက environment ထဲမှာ agent က လုပ်နိုင်တဲ့ ရွေးချယ်မှုတွေပါ။ ခွေးရဲ့ actions တွေက "ထိုင်"၊ "ရပ်"၊ "ဟောင်" စတာတွေလိုမျိုးပါ။ LLM အတွက်ကတော့ actions တွေက စာကြောင်းတစ်ကြောင်းမှာ စကားလုံးတွေ ထုတ်လုပ်တာ၊ မေးခွန်းတစ်ခုရဲ့ ဘယ်အဖြေကို ပေးရမလဲဆိုတာ ရွေးချယ်တာ ဒါမှမဟုတ် စကားဝိုင်းတစ်ခုမှာ ဘယ်လိုတုံ့ပြန်ရမလဲဆိုတာ ဆုံးဖြတ်တာမျိုးတွေ ဖြစ်နိုင်ပါတယ်။

### Reward

ဒါက agent က action တစ်ခုယူပြီးတဲ့နောက် environment က agent ကို ပေးတဲ့ feedback ပါ။ Rewards တွေက များသောအားဖြင့် ကိန်းဂဏန်းတွေပါ။

**Positive rewards** တွေက မုန့်နဲ့ ချီးကျူးခြင်းလိုပါပဲ – ဒါတွေက agent ကို "ကောင်းတယ်၊ မှန်ကန်တာတစ်ခု လုပ်ခဲ့တယ်!" လို့ ပြောပါတယ်။

**Negative rewards** (ဒါမှမဟုတ် penalties) တွေက ညင်သာတဲ့ "မဟုတ်ဘူး" လိုပါပဲ – ဒါတွေက agent ကို "ဒါက သိပ်မမှန်ဘူး၊ တခြားတစ်ခု ကြိုးစားကြည့်ပါ" လို့ ပြောပါတယ်။ ခွေးအတွက်ကတော့ မုန့်က reward ပါ။

LLM အတွက်ကတော့ rewards တွေကို LLM က သတ်မှတ်ထားတဲ့ task တစ်ခုမှာ ဘယ်လောက်ကောင်းကောင်း လုပ်ဆောင်နေလဲဆိုတာကို ထင်ဟပ်အောင် ဒီဇိုင်းထုတ်ထားပါတယ် – ဒါက သူ့ရဲ့ တုံ့ပြန်မှုဟာ ဘယ်လောက်အသုံးဝင်လဲ၊ မှန်ကန်လဲ၊ ဒါမှမဟုတ် အန္တရာယ်ကင်းလဲဆိုတာမျိုး ဖြစ်နိုင်ပါတယ်။

### Policy

ဒါက agent ရဲ့ actions တွေ ရွေးချယ်ဖို့ ဗျူဟာ (strategy) ပါ။ ဒါဟာ သင် "ထိုင်!" လို့ ပြောတဲ့အခါ ခွေးက ဘာလုပ်သင့်တယ်ဆိုတာ နားလည်ထားတာမျိုးပါပဲ။ RL မှာ policy ဟာ ကျွန်တော်တို့ တကယ်သင်ယူပြီး တိုးတက်အောင် လုပ်ဖို့ ကြိုးစားနေတာပါ။ ဒါက မတူညီတဲ့ အခြေအနေတွေမှာ agent က ဘယ် action ကို ယူရမလဲဆိုတာ ပြောပြတဲ့ စည်းမျဉ်းစည်းကမ်းများ သို့မဟုတ် function တစ်ခုပါ။ အစပိုင်းမှာ policy က random ဖြစ်နိုင်ပေမယ့်၊ agent က သင်ယူလာတာနဲ့အမျှ policy က ပိုမိုမြင့်မားတဲ့ rewards တွေကို ဖြစ်ပေါ်စေတဲ့ actions တွေကို ရွေးချယ်ရာမှာ ပိုကောင်းလာပါတယ်။

## RL လုပ်ငန်းစဉ် - စမ်းသပ်မှုနှင့် အမှား (Trial and Error)

![RL Process](https://huggingface.co/reasoning-course/images/resolve/main/grpo/1.jpg)

Reinforcement Learning က စမ်းသပ်မှုနဲ့ အမှား (trial and error) လုပ်ငန်းစဉ်ကနေတစ်ဆင့် ဖြစ်ပျက်ပါတယ်။

| အဆင့် | လုပ်ငန်းစဉ် | ဖော်ပြချက် |
|------|-------------|-------------|
| ၁။ Observation | Agent က environment ကို လေ့လာသည်။ | Agent က သူ့ရဲ့ လက်ရှိအခြေအနေနဲ့ ပတ်ဝန်းကျင်အကြောင်း အချက်အလက်တွေကို ရယူသည်။ |
| ၂။ Action | Agent က သူ့ရဲ့ လက်ရှိ policy ကို အခြေခံပြီး action တစ်ခု ယူသည်။ | သူသင်ယူထားတဲ့ ဗျူဟာ (policy) ကို အသုံးပြုပြီး agent က နောက်ဘာလုပ်ရမလဲဆိုတာ ဆုံးဖြတ်သည်။ |
| ၃။ Feedback | Environment က agent ကို reward ပေးသည်။ | Agent က သူယူခဲ့တဲ့ action က ဘယ်လောက်ကောင်းလဲ ဒါမှမဟုတ် ဆိုးလဲဆိုတဲ့ feedback ကို ရရှိသည်။ |
| ၄။ Learning | Agent က reward ကို အခြေခံပြီး သူ့ရဲ့ policy ကို update လုပ်သည်။ | Agent က သူ့ရဲ့ ဗျူဟာကို ချိန်ညှိသည် - မြင့်မားတဲ့ rewards တွေဆီ ဦးတည်စေတဲ့ actions တွေကို အားဖြည့်ပြီး နည်းပါးတဲ့ rewards တွေဆီ ဦးတည်စေတဲ့ actions တွေကို ရှောင်ရှားသည်။ |
| ၅။ Iteration | လုပ်ငန်းစဉ်ကို ထပ်ခါတလဲလဲ လုပ်ဆောင်သည်။ | ဒီ cycle က ဆက်လက်ဖြစ်ပေါ်ပြီး agent ကို ဆုံးဖြတ်ချက်ချမှတ်မှုမှာ ဆက်တိုက်တိုးတက်အောင် လုပ်ဆောင်စေသည်။ |

စက်ဘီးစီးတတ်ဖို့ သင်ယူတာကို စဉ်းစားကြည့်ပါ။ အစပိုင်းမှာ ယိုင်လဲတာမျိုး ဖြစ်နိုင်ပါတယ် (negative reward!)။ ဒါပေမယ့် သင် ဟန်ချက်ညီညီ စီးနင်းနိုင်တဲ့အခါ ကောင်းကောင်းခံစားရပါလိမ့်မယ် (positive reward!)။ ဒီ feedback ကို အခြေခံပြီး သင့်ရဲ့ actions တွေကို ချိန်ညှိပါ – အနည်းငယ် ကိုင်းတာ၊ ပိုမြန်မြန် နင်းတာ စသည်ဖြင့် – သင် ကောင်းကောင်းစီးတတ်လာတဲ့အထိပါပဲ။ RL ကလည်း အလားတူပါပဲ – အပြန်အလှန်ဆက်ဆံမှုနဲ့ feedback ကနေတစ်ဆင့် သင်ယူတာ ဖြစ်ပါတယ်။

## Large Language Models (LLMs) တွင် RL ၏ အခန်းကဏ္ဍ

အခု၊ RL ဟာ Large Language Models တွေအတွက် ဘာကြောင့် ဒီလောက်အရေးကြီးတာလဲ။

ကောင်းမွန်တဲ့ LLMs တွေကို train လုပ်တာက ခက်ခဲပါတယ်။ အင်တာနက်ကနေ ကြီးမားတဲ့ text အမြောက်အမြားနဲ့ train လုပ်နိုင်ပြီး စာကြောင်းတစ်ခုမှာ နောက်စကားလုံးကို ခန့်မှန်းရာမှာ သူတို့ဟာ အလွန်ကောင်းမွန်လာပါတယ်။ [chapter 2](/course/chapter2/1) မှာ ကျွန်တော်တို့ သင်ယူခဲ့တဲ့အတိုင်း၊ ဒီလိုနည်းနဲ့ သူတို့က płynne နဲ့ သဒ္ဒါမှန်ကန်တဲ့ text တွေ ထုတ်လုပ်ဖို့ သင်ယူကြတာပါ။

သို့သော်လည်း၊ ရိုးရှင်းစွာ płynne ဖြစ်နေရုံနဲ့ မလုံလောက်ပါဘူး။ ကျွန်တော်တို့ရဲ့ LLMs တွေက စကားလုံးတွေကို စုစည်းရာမှာ ကောင်းမွန်ရုံထက် ပိုဖြစ်စေချင်ပါတယ်။ ကျွန်တော်တို့က သူတို့ကို အောက်ပါအတိုင်း ဖြစ်စေချင်ပါတယ်-

*   **အထောက်အကူဖြစ်စေခြင်း (Helpful)**: အသုံးဝင်ပြီး သက်ဆိုင်တဲ့ အချက်အလက်တွေကို ပံ့ပိုးပေးခြင်း။
*   **အန္တရာယ်ကင်းစေခြင်း (Harmless)**: အဆိပ်အတောက်ဖြစ်စေသော၊ ဘက်လိုက်သော ဒါမှမဟုတ် အန္တရာယ်ရှိသော အကြောင်းအရာများ ထုတ်လုပ်ခြင်းကို ရှောင်ရှားခြင်း။
*   **လူသားနှစ်သက်မှုများနှင့် ကိုက်ညီခြင်း (Aligned with Human Preferences)**: လူသားတွေက သဘာဝကျတယ်၊ အထောက်အကူဖြစ်တယ်၊ ဆွဲဆောင်မှုရှိတယ်လို့ ယူဆတဲ့ နည်းလမ်းတွေနဲ့ တုံ့ပြန်ခြင်း။

LLM တွေကို pre-training လုပ်တဲ့ နည်းလမ်းတွေက text data ကနေ နောက်စကားလုံးကို ခန့်မှန်းခြင်းအပေါ် အဓိကအားဖြင့် မှီခိုတာကြောင့်၊ ဒီကဏ္ဍတွေမှာ တစ်ခါတစ်ရံ အားနည်းချက်တွေ ရှိနေတတ်ပါတယ်။

supervised training ဟာ structured outputs တွေ ထုတ်လုပ်ရာမှာ အလွန်ကောင်းမွန်ပေမယ့်၊ helpful, harmless နဲ့ aligned responses တွေ ထုတ်လုပ်ရာမှာတော့ ထိရောက်မှု နည်းပါးနိုင်ပါတယ်။ [chapter 11](/course/chapter11/1) မှာ supervised training အကြောင်းကို ကျွန်တော်တို့ လေ့လာထားပါတယ်။

fine-tuned models တွေက fluent နဲ့ structured text တွေ ထုတ်လုပ်နိုင်ပေမယ့်၊ အချက်အလက်အားဖြင့် မမှန်ကန်တာ၊ ဘက်လိုက်တာ ဒါမှမဟုတ် user ရဲ့ မေးခွန်းကို အထောက်အကူဖြစ်စေတဲ့ နည်းလမ်းနဲ့ တကယ်တမ်း မဖြေဆိုနိုင်တာမျိုး ဖြစ်နိုင်ပါတယ်။

**Reinforcement Learning ကို ကြိုဆိုပါတယ်!** RL က pre-trained LLMs တွေကို ဒီလိုလိုချင်တဲ့ အရည်အသွေးတွေကို ပိုမိုကောင်းမွန်အောင် fine-tune လုပ်ဖို့ နည်းလမ်းတစ်ခုကို ပေးပါတယ်။ ဒါဟာ ကျွန်တော်တို့ရဲ့ LLM ခွေးကို စကားလုံးတွေ płynnie ဟောင်တတ်တဲ့ ခွေးတစ်ကောင်ထက်၊ ကောင်းမွန်စွာ ပြုမူပြီး အထောက်အကူဖြစ်စေတဲ့ အဖော်တစ်ယောက် ဖြစ်လာအောင် ထပ်ဆောင်းလေ့ကျင့်ပေးတာနဲ့ တူပါတယ်။

## Reinforcement Learning from Human Feedback (RLHF)

language models တွေကို alignment လုပ်ဖို့အတွက် အလွန်ရေပန်းစားတဲ့ နည်းလမ်းတစ်ခုကတော့ **Reinforcement Learning from Human Feedback (RLHF)** ပါ။ RLHF မှာ၊ ကျွန်တော်တို့ဟာ လူသား feedback ကို RL ထဲက "reward" signal အဖြစ် proxy အဖြစ် အသုံးပြုပါတယ်။ ဒါက ဘယ်လိုအလုပ်လုပ်လဲဆိုတာ ကြည့်ရအောင်-

၁။ **လူသားနှစ်သက်မှုများ ရယူခြင်း (Get Human Preferences)**: LLM က ထုတ်လုပ်ထားတဲ့ မတူညီတဲ့ တုံ့ပြန်မှုတွေကို input prompt တူတူအတွက် လူသားတွေကို နှိုင်းယှဉ်ခိုင်းပြီး သူတို့ ဘယ်တုံ့ပြန်မှုကို ပိုကြိုက်လဲဆိုတာ ပြောခိုင်းနိုင်ပါတယ်။ ဥပမာ၊ "ပြင်သစ်နိုင်ငံရဲ့ မြို့တော်က ဘာလဲ" ဆိုတဲ့ မေးခွန်းရဲ့ မတူညီတဲ့ အဖြေနှစ်ခုကို လူသားတစ်ယောက်ကို ပြသပြီး "ဘယ်အဖြေက ပိုကောင်းလဲ" လို့ မေးနိုင်ပါတယ်။

၂။ **Reward Model တစ်ခုကို Train လုပ်ခြင်း (Train a Reward Model)**: ဒီလူသားနှစ်သက်မှု data ကို အသုံးပြုပြီး **reward model** လို့ခေါ်တဲ့ သီးခြား model တစ်ခုကို train လုပ်ပါတယ်။ ဒီ reward model က လူသားတွေ ဘယ်လိုတုံ့ပြန်မှုမျိုးကို နှစ်သက်မလဲဆိုတာ ခန့်မှန်းဖို့ သင်ယူပါတယ်။ ဒါက helpfulness, harmlessness နဲ့ human preferences တွေနဲ့ alignment အပေါ်အခြေခံပြီး တုံ့ပြန်မှုတွေကို score လုပ်ဖို့ သင်ယူပါတယ်။

၃။ **RL နဲ့ LLM ကို Fine-tune လုပ်ခြင်း (Fine-tune the LLM with RL)**: အခု ကျွန်တော်တို့ reward model ကို ကျွန်တော်တို့ရဲ့ LLM agent အတွက် environment အဖြစ် အသုံးပြုပါတယ်။ LLM က တုံ့ပြန်မှုတွေ ထုတ်လုပ် (actions) ပြီး reward model က ဒီတုံ့ပြန်မှုတွေကို score လုပ် (rewards တွေ ပေး) ပါတယ်။ အနှစ်ချုပ်ပြောရရင်၊ ကျွန်တော်တို့ဟာ LLM ကို ကျွန်တော်တို့ရဲ့ reward model (လူသားနှစ်သက်မှုတွေကနေ သင်ယူထားတာ) က ကောင်းတယ်လို့ ယူဆတဲ့ text တွေကို ထုတ်လုပ်ဖို့ train နေတာပါ။

![RL Basic Concept](https://huggingface.co/reasoning-course/images/resolve/main/grpo/2.jpg)

ယေဘူယျအားဖြင့်၊ LLMs တွေမှာ RL ကို အသုံးပြုခြင်းရဲ့ အကျိုးကျေးဇူးတွေကို ကြည့်ရအောင်။

| အကျိုးကျေးဇူး | ဖော်ပြချက် |
|---------------|-------------|
| ထိန်းချုပ်မှု ပိုကောင်းခြင်း | RL က LLMs တွေ ထုတ်လုပ်တဲ့ text အမျိုးအစားကို ပိုမိုထိန်းချုပ်နိုင်စေပါတယ်။ helpful ဖြစ်တာ၊ creative ဖြစ်တာ ဒါမှမဟုတ် concise ဖြစ်တာလိုမျိုး သီးခြားပန်းတိုင်တွေနဲ့ ပိုမို aligned ဖြစ်တဲ့ text တွေ ထုတ်လုပ်ဖို့ သူတို့ကို လမ်းညွှန်နိုင်ပါတယ်။ |
| လူသားတန်ဖိုးများနှင့် ပိုမိုကိုက်ညီမှု | RLHF က အထူးသဖြင့် ရှုပ်ထွေးပြီး တစ်ခါတစ်ရံ subjective ဖြစ်တဲ့ လူသားနှစ်သက်မှုတွေနဲ့ LLMs တွေကို align လုပ်ဖို့ ကူညီပေးပါတယ်။ "ကောင်းမွန်တဲ့ အဖြေတစ်ခုက ဘာကိုဖြစ်စေသလဲ" ဆိုတာအတွက် စည်းမျဉ်းတွေ ရေးဖို့ ခက်ခဲပေမယ့်၊ လူသားတွေက တုံ့ပြန်မှုတွေကို အလွယ်တကူ ဆုံးဖြတ်ပြီး နှိုင်းယှဉ်နိုင်ပါတယ်။ RLHF က model ကို ဒီလူသားဆုံးဖြတ်ချက်တွေကနေ သင်ယူစေပါတယ်။ |
| မလိုလားအပ်သော Behavior များကို လျှော့ချခြင်း | RL ကို LLMs တွေမှာ negative behaviors တွေ လျှော့ချဖို့ အသုံးပြုနိုင်ပါတယ်၊ ဥပမာ- toxic language ထုတ်လုပ်တာ၊ မှားယွင်းတဲ့ အချက်အလက် ဖြန့်ဝေတာ ဒါမှမဟုတ် biases တွေ ပြသတာမျိုးပါ။ ဒီ behaviors တွေကို penalize လုပ်တဲ့ rewards တွေကို ဒီဇိုင်းဆွဲခြင်းဖြင့်၊ model ကို ဒါတွေ ရှောင်ရှားဖို့ လှုံ့ဆော်နိုင်ပါတယ်။ |

Reinforcement Learning from Human Feedback ကို ဒီနေ့ခေတ် လူကြိုက်အများဆုံး LLMs များစွာကို လေ့ကျင့်ရာမှာ အသုံးပြုခဲ့ပါတယ်။ ဥပမာ- OpenAI ရဲ့ GPT-4၊ Google ရဲ့ Gemini နဲ့ DeepSeek ရဲ့ R1 တို့ပါပဲ။ RLHF အတွက် ရှုပ်ထွေးမှုနဲ့ အဆင့်အတန်းအမျိုးမျိုးရှိတဲ့ နည်းလမ်းများစွာ ရှိပါတယ်။ ဒီအခန်းမှာ၊ ကျွန်တော်တို့ဟာ Group Relative Policy Optimization (GRPO) ကို အဓိကထား လေ့လာသွားမှာဖြစ်ပါတယ်။ ဒါဟာ helpful, harmless နဲ့ human preferences တွေနဲ့ aligned ဖြစ်တဲ့ LLMs တွေကို လေ့ကျင့်ရာမှာ ထိရောက်မှုရှိကြောင်း ပြသထားတဲ့ RLHF နည်းလမ်းတစ်ခုပါ။

## GRPO (Group Relative Policy Optimization) ကို ဘာကြောင့် ဂရုစိုက်သင့်သလဲ။

RLHF အတွက် နည်းလမ်းများစွာရှိပေမယ့် ဒီသင်တန်းက GRPO ကို အဓိကထားပါတယ်။ ဘာလို့လဲဆိုတော့ ဒါက language models တွေအတွက် reinforcement learning မှာ အရေးပါတဲ့ တိုးတက်မှုကို ကိုယ်စားပြုလို့ပါပဲ။

RLHF အတွက် အခြားရေပန်းစားတဲ့ နည်းလမ်းနှစ်ခုကို အတိုချုံးကြည့်ရအောင်။

- Proximal Policy Optimization (PPO)
- Direct Preference Optimization (DPO)

Proximal Policy Optimization (PPO) ဟာ RLHF အတွက် ပထမဆုံး အလွန်ထိရောက်တဲ့ နည်းလမ်းတွေထဲက တစ်ခုပါ။ ဒါက policy gradient method ကို အသုံးပြုပြီး သီးခြား reward model တစ်ခုကနေ ရရှိတဲ့ reward ကို အခြေခံပြီး policy ကို update လုပ်ပါတယ်။

Direct Preference Optimization (DPO) ကို နောက်ပိုင်းမှာ ပိုမိုရိုးရှင်းတဲ့ နည်းလမ်းအဖြစ် ဖော်ထုတ်ခဲ့ပါတယ်။ ဒါက သီးခြား reward model တစ်ခု မလိုအပ်ဘဲ preference data ကို တိုက်ရိုက်အသုံးပြုပါတယ်။ အနှစ်ချုပ်ပြောရရင်၊ ပြဿနာကို ရွေးချယ်ထားတဲ့ တုံ့ပြန်မှုနဲ့ ပယ်ချခံရတဲ့ တုံ့ပြန်မှုတွေကြားက classification task အဖြစ် ပုံစံချတာပါ။

> [!TIP]
> DPO နဲ့ PPO ဟာ ၎င်းတို့ကိုယ်တိုင် ရှုပ်ထွေးတဲ့ reinforcement learning algorithms တွေဖြစ်ပြီး ဒီသင်တန်းမှာ ကျွန်တော်တို့ ဖော်ပြမှာ မဟုတ်ပါဘူး။ သင် ဒါတွေအကြောင်း ပိုမိုလေ့လာချင်တယ်ဆိုရင် အောက်ပါအရင်းအမြစ်တွေကို ကြည့်ရှုနိုင်ပါတယ်။
>
> - [Proximal Policy Optimization](https://huggingface.co/docs/trl/main/en/ppo_trainer)
> - [Direct Preference Optimization](https://huggingface.co/docs/trl/main/en/dpo_trainer)

DPO နဲ့ PPO တွေနဲ့ မတူတာက GRPO က ဆင်တူတဲ့ samples တွေကို အုပ်စုဖွဲ့ပြီး အုပ်စုတစ်စုအဖြစ် နှိုင်းယှဉ်ပါတယ်။ group-based ချဉ်းကပ်မှုက အခြားနည်းလမ်းတွေနဲ့ နှိုင်းယှဉ်ရင် ပိုမိုတည်ငြိမ်တဲ့ gradients တွေနဲ့ ပိုကောင်းတဲ့ convergence properties တွေကို ပေးပါတယ်။

GRPO က DPO လို preference data ကို အသုံးပြုတာ မဟုတ်ပါဘူး၊ ဒါပေမယ့် model ဒါမှမဟုတ် function တစ်ခုကနေ reward signal ကို အသုံးပြုပြီး ဆင်တူတဲ့ samples အုပ်စုတွေကို နှိုင်းယှဉ်ပါတယ်။

GRPO က reward signals တွေ ရယူရာမှာ ပြောင်းလွယ်ပြင်လွယ်ရှိပါတယ် – ဒါက reward model (PPO လိုပဲ) နဲ့ အလုပ်လုပ်နိုင်ပေမယ့်၊ သီးခြားတစ်ခုကို တင်းတင်းကျပ်ကျပ် မလိုအပ်ပါဘူး။ ဒါက ဘာလို့လဲဆိုတော့ GRPO က တုံ့ပြန်မှုတွေရဲ့ အရည်အသွေးကို အကဲဖြတ်နိုင်တဲ့ မည်သည့် function ဒါမှမဟုတ် model ကနေမဆို reward signals တွေကို ပေါင်းစပ်နိုင်လို့ပါပဲ။

ဥပမာ၊ ကျွန်တော်တို့ဟာ ပိုတိုတဲ့ တုံ့ပြန်မှုတွေအတွက် reward ပေးဖို့ length function တစ်ခုကို အသုံးပြုနိုင်ပါတယ်၊ ဖြေရှင်းချက် မှန်ကန်မှုကို စစ်ဆေးဖို့ mathematical solver ကို အသုံးပြုနိုင်ပါတယ်၊ ဒါမှမဟုတ် အချက်အလက်မှန်ကန်မှု ပိုမိုမြင့်မားတဲ့ တုံ့ပြန်မှုတွေအတွက် reward ပေးဖို့ factual correctness function ကို အသုံးပြုနိုင်ပါတယ်။ ဒီပြောင်းလွယ်ပြင်လွယ်ရှိမှုက GRPO ကို မတူညီတဲ့ alignment tasks တွေအတွက် အထူးသဖြင့် အသုံးဝင်စေပါတယ်။

---

Module 1 ပြီးဆုံးသွားတဲ့အတွက် ဂုဏ်ယူပါတယ်။ Reinforcement Learning နဲ့ Large Language Models တွေရဲ့ အနာဂတ်ကို ပုံဖော်ရာမှာ ၎င်းရဲ့ အရေးပါတဲ့ အခန်းကဏ္ဍအကြောင်း ခိုင်မာတဲ့ နိဒါန်းတစ်ခုကို အခု သင်ရရှိခဲ့ပါပြီ။ RL ရဲ့ အခြေခံအယူအဆတွေကို သင်နားလည်ပါပြီ၊ LLMs တွေအတွက် ဘာကြောင့် အသုံးပြုရလဲဆိုတာကို သိပြီး၊ ဒီနယ်ပယ်ရဲ့ အဓိက algorithm တစ်ခုဖြစ်တဲ့ GRPO ကို သင်မိတ်ဆက်ခံခဲ့ရပါပြီ။

နောက် module မှာတော့ ကျွန်တော်တို့ လက်တွေ့ကျကျ လုပ်ဆောင်ပြီး ဒီအယူအဆတွေကို လက်တွေ့မှာ ဘယ်လိုအလုပ်လုပ်လဲဆိုတာ ကြည့်ဖို့ DeepSeek R1 paper ထဲကို နက်နက်နဲနဲ လေ့လာသွားမှာပါ။

## မေးခွန်းများ

### ၁။ Reinforcement Learning ၏ အဓိက အစိတ်အပိုင်းများက ဘာတွေလဲ။

<Question
    choices={[
        {
            text: "Agent, Environment, Action, Reward, နှင့် Policy",
            explain: "မှန်ပါတယ်။ ဒါတွေက reinforcement learning system တစ်ခုကို ဖွဲ့စည်းထားတဲ့ အခြေခံအစိတ်အပိုင်းတွေပါ။",
            correct: true
        },
        {
            text: "Model, Data, Loss Function, နှင့် Optimizer",
            explain: "ဒါတွေက supervised learning နဲ့ ပိုပြီး သက်ဆိုင်တဲ့ အစိတ်အပိုင်းတွေပါ။"
        },
        {
            text: "Input, Output, နှင့် Hidden Layers",
            explain: "ဒါတွေက neural network architecture ရဲ့ အစိတ်အပိုင်းတွေဖြစ်ပြီး RL အစိတ်အပိုင်းတွေ မဟုတ်ပါဘူး။"
        }
    ]}
/>

### ၂။ Language Models တွေ train ဖို့ RLHF ရဲ့ အဓိက အကျိုးကျေးဇူးက ဘာလဲ။

<Question
    choices={[
        {
            text: "ဒါက models တွေကို လူသားနှစ်သက်မှုတွေနဲ့ တန်ဖိုးတွေနဲ့ align လုပ်ဖို့ ကူညီပေးတယ်",
            explain: "မှန်ပါတယ်။ RLHF က လူသား feedback ကို အသုံးပြုပြီး models တွေကို ပိုမို helpful, harmless နဲ့ aligned behavior တွေဆီ ဦးတည်စေပါတယ်။",
            correct: true
        },
        {
            text: "ဒါက models တွေကို text တွေ ပိုမြန်မြန် ထုတ်လုပ်စေတယ်",
            explain: "RLHF က အဓိကအားဖြင့် generation speed ကို တိုးတက်အောင် လုပ်တာ မဟုတ်ပါဘူး။"
        },
        {
            text: "ဒါက model ရဲ့ memory အသုံးပြုမှုကို လျှော့ချတယ်",
            explain: "RLHF က model efficiency ဒါမှမဟုတ် memory optimization ကို အာရုံစိုက်တာ မဟုတ်ပါဘူး။"
        }
    ]}
/>

### ၃။ LLMs တွေအတွက် RL အခြေအနေမှာ၊ "action" ဆိုတာ ဘာကို ကိုယ်စားပြုလဲ။

<Question
    choices={[
        {
            text: "စကားပြောဆိုမှုတစ်ခုမှာ စကားလုံးတွေ ထုတ်လုပ်တာ ဒါမှမဟုတ် တုံ့ပြန်မှုတွေ ရွေးချယ်တာ",
            explain: "မှန်ပါတယ်။ LLMs တွေအတွက် actions တွေက များသောအားဖြင့် text generation ဆုံးဖြတ်ချက်တွေ ပါဝင်ပါတယ်။",
            correct: true
        },
        {
            text: "model weights တွေ update လုပ်တာ",
            explain: "ဒါက training လုပ်ငန်းစဉ်ရဲ့ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး RL အခြေအနေမှာ action မဟုတ်ပါဘူး။"
        },
        {
            text: "input tokens တွေ process လုပ်တာ",
            explain: "ဒါက model ရဲ့ လုပ်ဆောင်ချက်ရဲ့ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး RL အခြေအနေမှာ action မဟုတ်ပါဘူး။"
        }
    ]}
/>

### ၄။ Language models တွေရဲ့ RL training မှာ reward ရဲ့ အခန်းကဏ္ဍက ဘာလဲ။

<Question
    choices={[
        {
            text: "model ရဲ့ တုံ့ပြန်မှုတွေက လိုချင်တဲ့ behavior တွေနဲ့ ဘယ်လောက်ကိုက်ညီလဲဆိုတဲ့ feedback ကို ပေးဖို့",
            explain: "မှန်ပါတယ်။ Rewards တွေက model ကို ပိုမို helpful, truthful နဲ့ သင့်လျော်တဲ့ တုံ့ပြန်မှုတွေ ထုတ်လုပ်ဖို့ လမ်းညွှန်ပါတယ်။",
            correct: true
        },
        {
            text: "model ရဲ့ vocabulary size ကို တိုင်းတာဖို့",
            explain: "Rewards တွေကို vocabulary knowledge ကို အကဲဖြတ်ဖို့ အသုံးပြုတာ မဟုတ်ပါဘူး။"
        },
        {
            text: "model ရဲ့ training speed ကို ဆုံးဖြတ်ဖို့",
            explain: "Rewards တွေက တုံ့ပြန်မှု အရည်အသွေးနဲ့ ပတ်သက်တဲ့ feedback ကို ပေးတာဖြစ်ပြီး training efficiency နဲ့ ပတ်သက်တာ မဟုတ်ပါဘူး။"
        }
    ]}
/>

### ၅။ LLMs တွေအတွက် RL အခြေအနေမှာ reward ဆိုတာ ဘာလဲ။

<Question
    choices={[
        {
            text: "တုံ့ပြန်မှုတစ်ခုရဲ့ အရည်အသွေးကို တိုင်းတာတဲ့ ကိန်းဂဏန်း score တစ်ခု",
            explain: "မှန်ပါတယ်။ Rewards တွေက တုံ့ပြန်မှု အရည်အသွေးနဲ့ ပတ်သက်တဲ့ feedback ကို ပေးပြီး model ကို လိုချင်တဲ့ behavior ဆီ ဦးတည်စေပါတယ်။",
            correct: true
        },
        {
            text: "တုံ့ပြန်မှုတွေ ထုတ်လုပ်တဲ့ function တစ်ခု",
            explain: "Rewards တွေက တုံ့ပြန်မှု အရည်အသွေးနဲ့ ပတ်သက်တဲ့ feedback ကို ပေးတာဖြစ်ပြီး generation လုပ်ငန်းစဉ် ကိုယ်တိုင် မဟုတ်ပါဘူး။"
        },
        {
            text: "တုံ့ပြန်မှုတွေရဲ့ အရည်အသွေးကို အကဲဖြတ်တဲ့ model တစ်ခု",
            explain: "Rewards တွေက တုံ့ပြန်မှု အရည်အသွေးနဲ့ ပတ်သက်တဲ့ feedback ကို ပေးတာဖြစ်ပြီး evaluation model မဟုတ်ပါဘူး။"
        }
    ]}
/>

## ဝေါဟာရ ရှင်းလင်းချက် (Glossary)

*   **Reinforcement Learning (RL)**: Agent တစ်ခုက environment တစ်ခုနဲ့ အပြန်အလှန်ဆက်ဆံပြီး trial-and-error ကနေတစ်ဆင့် သင်ယူကာ rewards များကို အမြင့်ဆုံးရရှိစေမယ့် actions တွေကို ရွေးချယ်ဖို့ သင်ယူတဲ့ Machine Learning နယ်ပယ်တစ်ခု။
*   **Language Models (LLMs)**: လူသားဘာသာစကားကို နားလည်ပြီး ထုတ်လုပ်ပေးနိုင်တဲ့ အလွန်ကြီးမားတဲ့ Artificial Intelligence (AI) မော်ဒယ်တွေ ဖြစ်ပါတယ်။
*   **Agent**: Reinforcement Learning (RL) စနစ်တစ်ခုတွင် environment နှင့် အပြန်အလှန်ဆက်ဆံပြီး ဆုံးဖြတ်ချက်များချကာ သင်ယူသော အစိတ်အပိုင်း။
*   **Environment**: Reinforcement Learning (RL) စနစ်တစ်ခုတွင် agent နေထိုင်ပြီး အပြန်အလှန်ဆက်ဆံသည့် ကမ္ဘာ သို့မဟုတ် အခြေအနေ။ ၎င်းသည် agent ၏ actions များကို တုံ့ပြန်ပြီး rewards များကို ပေးသည်။
*   **Reward**: Reinforcement Learning (RL) တွင် agent ၏ action တစ်ခုပြီးနောက် environment က agent ကို ပေးသော feedback (များသောအားဖြင့် ကိန်းဂဏန်းတန်ဖိုး)။ Positive reward သည် ကောင်းမွန်သော action ကိုညွှန်ပြပြီး negative reward (penalty) သည် မကောင်းသော action ကိုညွှန်ပြသည်။
*   **Action**: Reinforcement Learning (RL) တွင် agent က environment ထဲ၌ လုပ်ဆောင်နိုင်သော ရွေးချယ်မှု သို့မဟုတ် လုပ်ဆောင်ချက်။
*   **Policy**: Reinforcement Learning (RL) တွင် agent ၏ strategy (ဗျူဟာ) ဖြစ်ပြီး သတ်မှတ်ထားသော အခြေအနေတစ်ခုတွင် မည်သည့် action ကို ရွေးချယ်ရမည်ကို ဆုံးဖြတ်ပေးသော စည်းမျဉ်းများ သို့မဟုတ် function တစ်ခု။
*   **Trial and Error**: စမ်းသပ်ခြင်းနှင့် မှားယွင်းခြင်း လုပ်ငန်းစဉ်မှတစ်ဆင့် သင်ယူခြင်းနည်းလမ်း။
*   **Observation**: Agent က environment ၏ လက်ရှိအခြေအနေနှင့် ပတ်ဝန်းကျင်အကြောင်း အချက်အလက်များကို ရယူခြင်း။
*   **Feedback**: လုပ်ဆောင်ချက်တစ်ခု၏ ရလဒ်နှင့်ပတ်သက်သော အချက်အလက်။
*   **Learning**: Agent က reward ကို အခြေခံပြီး သူ့ရဲ့ policy ကို ပြင်ဆင်ခြင်း။
*   **Iteration**: လုပ်ငန်းစဉ်တစ်ခုကို ထပ်ခါတလဲလဲ လုပ်ဆောင်ခြင်း။
*   **Fluent Text**: သဘာဝကျပြီး သဒ္ဒါမှန်ကန်သော စာသား။
*   **Grammatically Correct Text**: သဒ္ဒါစည်းမျဉ်းများနှင့် ကိုက်ညီသော စာသား။
*   **Helpful**: အသုံးဝင်ပြီး သက်ဆိုင်သော အချက်အလက်များကို ပံ့ပိုးပေးခြင်း။
*   **Harmless**: အဆိပ်အတောက်ဖြစ်စေသော၊ ဘက်လိုက်သော ဒါမှမဟုတ် အန္တရာယ်ရှိသော အကြောင်းအရာများ ထုတ်လုပ်ခြင်းကို ရှောင်ရှားခြင်း။
*   **Aligned with Human Preferences**: လူသားနှစ်သက်မှုများနှင့် ကိုက်ညီသော တုံ့ပြန်မှုများ။
*   **Pre-training LLM Methods**: LLM များကို ကနဦး လေ့ကျင့်သော နည်းလမ်းများ (များသောအားဖြင့် text data မှ နောက်စကားလုံးကို ခန့်မှန်းခြင်း)။
*   **Supervised Training**: Input data နှင့် ၎င်း၏ သက်ဆိုင်ရာ labels များပါဝင်သော dataset ကို အသုံးပြု၍ model ကို လေ့ကျင့်သော Machine Learning ပုံစံ။
*   **Structured Outputs**: သတ်မှတ်ထားသော ပုံစံ သို့မဟုတ် format ရှိသော output များ။
*   **Fine-tuned Models**: ကြိုတင်လေ့ကျင့်ထားပြီးသား model တစ်ခုကို သီးခြား task တစ်ခုအတွက် ထပ်မံလေ့ကျင့်ထားသော model များ။
*   **Factually Incorrect**: အချက်အလက်အားဖြင့် မမှန်ကန်သော။
*   **Biased**: ဘက်လိုက်မှုရှိသော။
*   **Reinforcement Learning from Human Feedback (RLHF)**: လူသား feedback ကို reward signal အဖြစ် အသုံးပြုပြီး language models များကို fine-tune လုပ်သော RL နည်းလမ်း။
*   **Human Preferences**: လူသားများ၏ နှစ်သက်မှု သို့မဟုတ် ရွေးချယ်မှုများ။
*   **Proxy**: မူရင်းအရာကို ကိုယ်စားပြုသော အရာ။
*   **Reward Model**: လူသားနှစ်သက်မှု data ဖြင့် လေ့ကျင့်ထားသော သီးခြား model တစ်ခုဖြစ်ပြီး LLM မှ ထုတ်လုပ်သော တုံ့ပြန်မှုများ၏ အရည်အသွေးကို ခန့်မှန်းပြီး score ပေးသည်။
*   **Algorithmic Biases**: AI algorithms များ၏ ဆုံးဖြတ်ချက်များတွင် ဒေတာ သို့မဟုတ် ဒီဇိုင်းကြောင့် ဖြစ်ပေါ်လာသော ဘက်လိုက်မှုများ။
*   **Group Relative Policy Optimization (GRPO)**: RLHF နည်းလမ်းတစ်ခုဖြစ်ပြီး ဆင်တူသော samples များကို အုပ်စုဖွဲ့ကာ ၎င်းတို့ကို အုပ်စုလိုက် နှိုင်းယှဉ်၍ policy ကို update လုပ်သည်။
*   **Proximal Policy Optimization (PPO)**: Policy gradient method ကို အသုံးပြုပြီး reward model မှ reward ကို အခြေခံ၍ policy ကို update လုပ်သော RLHF နည်းလမ်း။
*   **Direct Preference Optimization (DPO)**: သီးခြား reward model မလိုအပ်ဘဲ preference data ကို တိုက်ရိုက်အသုံးပြုပြီး classification task အဖြစ် framing လုပ်၍ policy ကို update လုပ်သော RLHF နည်းလမ်း။
*   **Policy Gradient Method**: Reinforcement Learning တွင် agent ၏ policy ကို တိုက်ရိုက် optimize လုပ်သော algorithm အမျိုးအစား။
*   **Preference Data**: လူသားများက မတူညီသော output များကို နှိုင်းယှဉ်ပြီး ပိုနှစ်သက်သော output ကို ရွေးချယ်ထားသော data။
*   **Classification Task**: ဒေတာအချက်အလက်များကို သတ်မှတ်ထားသော အမျိုးအစားများ သို့မဟုတ် အတန်းများထဲသို့ ခွဲခြားသတ်မှတ်ခြင်း လုပ်ငန်း။
*   **Gradients**: Model parameters များ ပြောင်းလဲသွားသောအခါ loss function ၏ တန်ဖိုး မည်သို့ပြောင်းလဲသည်ကို ပြသသော တန်ဖိုးများ။ Training လုပ်ငန်းစဉ်တွင် parameters များကို ချိန်ညှိရန် အသုံးပြုသည်။
*   **Convergence Properties**: Training လုပ်ငန်းစဉ်တစ်ခုက အမှန်တကယ် optimum သို့မဟုတ် ကောင်းမွန်သော solution သို့ ရောက်ရှိနိုင်သည့် အလားအလာနှင့် မြန်နှုန်း။
*   **Length Function**: စာသား၏ အရှည်ကို တိုင်းတာသော function။
*   **Mathematical Solver**: သင်္ချာဆိုင်ရာ ပြဿနာများကို ဖြေရှင်းပေးသော algorithm သို့မဟုတ် program။
*   **Factual Correctness Function**: စာသား၏ အချက်အလက်မှန်ကန်မှုကို အကဲဖြတ်သော function။